home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / STUTTGART / FROMUTS / PERL / Perl / Lib / Dumpvar < prev    next >
Text File  |  1990-08-13  |  794b  |  38 lines

  1. package dumpvar;
  2.  
  3. # translate control chars to ^X - Randal Schwartz
  4. sub unctrl {
  5.     local($_) = @_;
  6.     s/([\001-\037\177])/'^'.pack('c',ord($1)^64)/eg;
  7.     $_;
  8. }
  9. sub main'dumpvar {
  10.     ($package,$vars) = @_;
  11.     local(*stab) = eval("*_$package");
  12.     while (($key,$val) = each(%stab)) {
  13.     {
  14.         next if @vars && !grep($key eq $_,@vars);
  15.         local(*entry) = $val;
  16.         if (defined $entry) {
  17.         print "\$$key = '",&unctrl($entry),"'\n";
  18.         }
  19.         if (defined @entry) {
  20.         print "\@$key = (\n";
  21.         foreach $num ($[ .. $#entry) {
  22.             print "  $num\t'",$entry[$num],"'\n";
  23.         }
  24.         print ")\n";
  25.         }
  26.         if ($key ne "_$package" && defined %entry) {
  27.         print "\%$key = (\n";
  28.         foreach $key (sort keys(%entry)) {
  29.             print "  $key\t'",&unctrl($entry{$key}),"'\n";
  30.         }
  31.         print ")\n";
  32.         }
  33.     }
  34.     }
  35. }
  36.  
  37. 1;
  38.